package com.tang.framework.delay.support.domain;

import lombok.Data;

import java.io.Serializable;

/**
 * @Author tang jun liang
 * @Date 2023/4/19 14:12
 */
@Data
public class Message<T> implements Serializable {

    /**
     * 信息id
     */
    private String id;

    /**
     * 延迟方法消息
     */
    private MethodInfo methodInfo;
    /**
     * 信息内容
     */
    private T body;

    /**
     * 重试次数
     */
    private int retry;


    public void increment(){
        retry++;
    };


    @Data
    public static class MethodInfo{

        /**
         * 类名
         */
        private Class<?> clazz;

        /**
         * 方法名
         */
        private String methodName;


        /**
         * 队列名
         */
        private String queueName;
    }

}
